
import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 * Classe que representa um Host.
 * @author Cleiton
 */
public interface Host extends Remote {

    /**
     * Metodo para o Roteador enviar dados para host
     * @param pacote mensagem a ser enviada com o endereço de destino
     * @throws RemoteException 
     */
    public void receberMensagem(Pacote pacote) throws RemoteException;
    /**
     * Altera o nome do host
     * @param nome  Novo nome par o host
     * @throws RemoteException 
     */
    public void setNome(String nome) throws RemoteException;

    /**
     * obtem o Ipv4 da maquina
     * @return numero do ip da maquina
     * @throws RemoteException  
     */
    public String getIp() throws RemoteException;
   /**
     * Altera o Gatway do Host.Conectando o Host ao mesmo.
     * @param name Nome do Roteador ao qual o host esta conectado.
     * @param ip Ip do Roteador ao qual o Host irá se conectar.
     * @throws RemoteException
     */
    public void setGatway(String name, String ip) throws RemoteException;
}
